$(document).ready(function() { // 确保文档在完全加载后再执行内部代码
  const token = localStorage.getItem('token'); // 从 localStorage 获取 token
  const userId = localStorage.getItem('user_id'); // 从 localStorage 获取用户 ID

  if (!token || !userId) { // 如果 token 或用户 ID 不存在
      alert('请先登录'); // 弹出提示要求用户先登录
      window.location.href = 'login.html'; // 跳转到登录页面
      return; // 停止后续代码执行
  }

  // 简单的密码格式校验函数
  function pwdTest(password) {
      const pwdRegex = /^\w{6,12}$/; // 正则表达式：密码长度为 6-12 位，包含字母、数字和下划线
      return pwdRegex.test(password); // 返回校验结果，true 或 false
  }

  // 表单提交事件
  $('#rpwdForm').on('submit', function(event) { // 为表单绑定提交事件监听器
      event.preventDefault(); // 阻止默认的表单提交行为
      const oldPassword = $('.oldpassword').val().trim(); // 获取并去除旧密码输入框的前后空格
      const newPassword = $('.newpassword').val().trim(); // 获取并去除新密码输入框的前后空格
      const rNewPassword = $('.rnewpassword').val().trim(); // 获取并去除确认新密码输入框的前后空格

      if (oldPassword === '' || newPassword === '' || rNewPassword === '') { // 检查是否有空字段
          alert('所有字段都是必填项'); // 弹出提示信息
          return; // 停止后续代码执行
      }

      if (newPassword !== rNewPassword) { // 检查两次输入的新密码是否一致
          alert('两次输入的新密码不一致'); // 弹出提示信息
          return; // 停止后续代码执行
      }

      if (!pwdTest(newPassword)) { // 校验新密码格式是否正确
          alert('新密码格式错误'); // 弹出提示信息
          return; // 停止后续代码执行
      }

      axios.post('http://localhost:9000/users/rpwd', { // 发送 POST 请求到修改密码接口
          id: userId, // 用户 ID
          oldPassword: oldPassword, // 旧密码
          newPassword: newPassword, // 新密码
          rNewPassword: rNewPassword // 确认新密码
      }, {
          headers: { 'Authorization': token } // 设置请求头中的授权信息
      }).then(response => { // 处理请求成功的响应
          if (response.data.code === 1) { // 如果修改密码成功
              localStorage.removeItem('token'); // 清除本地存储中的 token
              localStorage.removeItem('user_id'); // 清除本地存储中的用户 ID
              localStorage.removeItem('nickname'); // 清除本地存储中的昵称
              alert('修改密码成功，请重新登录'); // 弹出成功提示信息
              window.location.href = 'login.html'; // 跳转到登录页面
          } else { // 如果修改密码失败
              alert('修改密码失败：' + response.data.message); // 弹出错误信息
          }
      }).catch(error => { // 捕获请求错误
          console.error('修改密码请求出错：', error); // 在控制台打印错误信息
          alert('修改密码请求出错，请稍后重试'); // 弹出错误提示
      });
  });
});
